<?php
session_start();

function validaUsuario($usuario){
	$ret=false;
	if(validaCampos($usuario)){
		try{
			$ret=validaUsuarioBaseDatos($usuario);
			
		}catch (PDOException $e){
			$error["mensaje"]="Error al buscar un usuario en la base de datos  ".$e->getMessage();
			$_SESSION["error"]=$error;
			Header("Location: ../error/error.php");
				
		}
	}
	return $ret;
}



function validaCampos($usuario){
	$expresionUsuario = '/^[a-z0-9\.\-_]+$/i';
	$expresionEmail = '/^[a-z0-9_\-\.]+\@[a-z0-9_\-\.]+\.[a-z]+$/i';
	$expresionNombre = '/^[a-z\xc0-\xdc \-]+$/i';
	$expresionDni = '/^\d{8}[a-zA-Z]$/';
	$expresion = '/^[A-Za-z0-9_\-\.]+$/';
	/**/

	$_SESSION["errores"]=null;
	$errores= null;
	$valido=true;


	if (($usuario["dni"]=="") || (!preg_match($expresionDni,$usuario["dni"],$gr))){
		$valido=false;
		$errores=$errores."DNI incorrecto, ";
	}

	if (($usuario["nombre"]=="") || (!preg_match($expresionNombre,$usuario["nombre"],$gr))){
		$valido=false;
		$errores=$errores."Nombre incorrecto, ";

	}

	if (($usuario["apellidos"]=="") || (!preg_match($expresionNombre,$usuario["apellidos"],$gr))){
		$valido=false;
		$errores=$errores."Apellido incorrecto, ";

	}

	if ($usuario["direccion"]==""){
		$valido=false;
		$errores=$errores."Direccion incorrecta, ";

	}

	if (($usuario["codigo_postal"]=="") || (!preg_match($expresion,$usuario["codigo_postal"],$gr))){
		$valido=false;
		$errores=$errores."Codigo postal incorrecto, ";

	}

	if (($usuario["usuario"]=="") || (!preg_match($expresionUsuario,$usuario["usuario"],$gr))){
		$valido=false;
		$errores=$errores."Usuario incorrecto, ";

	}
	if (($usuario["pass1"]=="") || (!preg_match($expresion,$usuario["pass1"],$gr))){
		$valido=false;
		$errores=$errores."Contrase&ntilde;a incorrecta, ";

	}
	if ($usuario["pass1"]!=$usuario["pass2"] ){
		$valido=false;
		$errores=$errores."Error repetir contrase&ntilde;a, ";

	}

	if (($usuario["email"]=="") || (!preg_match($expresionEmail,$usuario["email"],$gr))){
		$valido=false;
		$errores=$errores."Email incorrecto";

	}


	if($valido)
	$_SESSION["errores"]=null;
	else
	$_SESSION["errores"]=$errores;

	return $valido;
}


function validaUsuarioBaseDatos($usuario){
	$sql="select * from ciudadano where usr = :usr or dni = :dni;";//$tipo es la tabla a la que accedo por eso no se usa con blindValue
	$ret=true;
	$_SESSION["errores"]=null;
	$errores= null;
	$con=conectarBD();
	$stmt=$con->prepare($sql);
	$stmt->bindValue(':usr', $usuario["usuario"]);
	$stmt->bindValue(':dni', $usuario["dni"]);
	$stmt->execute();
	$row = $stmt->fetch();

	if($row){
		$errores="Nombre de usuario o dni repetido ";
		$_SESSION["errores"]=$errores;
		$ret=false;
	}


	return $ret;

}

?>
